// Fill out your copyright notice in the Description page of Project Settings.

#include "EmptyLand.h"
#include "WinstonLogger.h"

#define LOCTEXT_NAMESPACE "FEmptyLandModule"

/**
 * 模块启动函数
 * 初始化模块所需资源和设置
 */
void FEmptyLandModule::StartupModule()
{
    // 这个模块启动时的初始化代码
    UE_LOG(LogTemp, Warning, TEXT("EmptyLand Module Started"));
    
    // 初始化Winston日志系统
    FWinstonLogger::Get().Initialize(
        TEXT("Logs"),         // 日志目录
        TEXT("EmptyLand"),   // 日志文件名前缀
        true                 // 启用文件日志
    );
    
    // 设置日志级别为Debug
    FWinstonLogger::Get().SetLogLevel(FWinstonLogger::ELogLevel::Debug);
    
    // 使用Winston日志系统记录模块启动
    FWinstonLogger::Get().Info(TEXT("EmptyLandModule"), TEXT("Module started successfully"));
}

/**
 * 模块关闭函数
 * 清理模块使用的资源
 */
void FEmptyLandModule::ShutdownModule()
{
    // 使用Winston日志系统记录模块关闭
    FWinstonLogger::Get().Info(TEXT("EmptyLandModule"), TEXT("Module shutting down"));
    
    // 关闭Winston日志系统
    FWinstonLogger::Get().Shutdown();
    
    UE_LOG(LogTemp, Warning, TEXT("EmptyLand Module Shutdown"));
}

#undef LOCTEXT_NAMESPACE

IMPLEMENT_MODULE(FEmptyLandModule, EmptyLand) // 实现游戏模块